home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / include / nessus / nessusicmp.h < prev    next >
C/C++ Source or Header  |  2006-06-13  |  2KB  |  82 lines

  1. #ifndef NESSUS_ICMP_H
  2. #define NESSUS_ICMP_H
  3.  
  4. #ifdef HAVE_NETINET_IP_ICMP_H
  5. #include <netinet/ip_icmp.h>
  6. #endif
  7.  
  8. #if !defined(HAVE_STRUCT_ICMP) || (HAVE_STRUCT_ICMP == 0)
  9. struct icmp_ra_addr {
  10.     u_int32_t ira_addr;
  11.     u_int32_t ira_preference;
  12. };
  13. #define HAVE_STRUCT_ICMP 1
  14.  
  15. struct icmp {
  16.     u_char    icmp_type;        /* type of message, see below */
  17.     u_char    icmp_code;        /* type sub code */
  18.     u_short    icmp_cksum;        /* ones complement cksum of struct */
  19.     union {
  20.         u_char ih_pptr;            /* ICMP_PARAMPROB */
  21.         struct in_addr ih_gwaddr;    /* ICMP_REDIRECT */
  22.         struct ih_idseq {
  23.             n_short    icd_id;
  24.             n_short    icd_seq;
  25.         } ih_idseq;
  26.         int ih_void;
  27.  
  28.         /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
  29.         struct ih_pmtu {
  30.             n_short ipm_void;
  31.             n_short ipm_nextmtu;
  32.         } ih_pmtu;
  33.  
  34.         struct ih_rtradv {
  35.             u_char irt_num_addrs;
  36.             u_char irt_wpa;
  37.             u_int16_t irt_lifetime;
  38.         } ih_rtradv;
  39.     } icmp_hun;
  40. #define    icmp_pptr    icmp_hun.ih_pptr
  41. #define    icmp_gwaddr    icmp_hun.ih_gwaddr
  42. #define    icmp_id        icmp_hun.ih_idseq.icd_id
  43. #define    icmp_seq    icmp_hun.ih_idseq.icd_seq
  44. #define    icmp_void    icmp_hun.ih_void
  45. #define    icmp_pmvoid    icmp_hun.ih_pmtu.ipm_void
  46. #define    icmp_nextmtu    icmp_hun.ih_pmtu.ipm_nextmtu
  47. #define    icmp_num_addrs    icmp_hun.ih_rtradv.irt_num_addrs
  48. #define    icmp_wpa    icmp_hun.ih_rtradv.irt_wpa
  49. #define    icmp_lifetime    icmp_hun.ih_rtradv.irt_lifetime
  50.     union {
  51.         struct id_ts {
  52.             n_time its_otime;
  53.             n_time its_rtime;
  54.             n_time its_ttime;
  55.         } id_ts;
  56.         struct id_ip  {
  57.             struct ip idi_ip;
  58.             /* options and then 64 bits of data */
  59.         } id_ip;
  60.         struct icmp_ra_addr id_radv;
  61.         u_long    id_mask;
  62.         char    id_data[1];
  63.     } icmp_dun;
  64. #define    icmp_otime    icmp_dun.id_ts.its_otime
  65. #define    icmp_rtime    icmp_dun.id_ts.its_rtime
  66. #define    icmp_ttime    icmp_dun.id_ts.its_ttime
  67. #define    icmp_ip        icmp_dun.id_ip.idi_ip
  68. #define    icmp_radv    icmp_dun.id_radv
  69. #define    icmp_mask    icmp_dun.id_mask
  70. #define    icmp_data    icmp_dun.id_data
  71. };
  72.  
  73. #endif /* not defined(HAVE_STRUCT_ICMP) */
  74.  
  75. #ifndef HAS_ICMP_ICMP_LIFETIME
  76. #define SET_ICMP_LIFETIME(x,y) (x).icmp_hun.ih_void = (x).icmp_hun.ih_void & y
  77. #else
  78. #define SET_ICMP_LIFETIME(x,y) (x).icmp_lifetime = y
  79. #endif
  80.  
  81. #endif
  82.